#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>

// 自定义的SIGINT信号处理函数
void handle_sigint(int signum) {
    printf("Caught SIGINT, exiting now...\n");
    exit(0); // 退出程序
}

int main() {
    struct sigaction sa;

    // 初始化sigaction结构体
    sa.sa_handler = handle_sigint; // 设置信号处理函数
    sigemptyset(&sa.sa_mask);     // 清空信号集
    sa.sa_flags = 0;              // 设置标志

    // 为SIGINT信号设置自定义处理程序
    if (sigaction(SIGINT, &sa, NULL) == -1) {
        perror("sigaction");
        exit(1);
    }

    printf("Program is running, press Ctrl+C to send SIGINT\n");
    while(1) {
        sleep(1); // 模拟程序正在执行
        printf("Running...\n");
    }

    return 0;
}